import pygtk
pygtk.require('2.0')
import gtk

from alfabetos import *

class Ventana:
	def delete_event(self, widget, event, data = None):
		print 'Delete event'
		return gtk.FALSE

	def destroy(self, widget, data = None):
		gtk.main_quit()

	def __init__(self):
		self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
		self.window.connect("destroy", self.destroy)
		self.window.set_border_width(0)
		gtk.Window.set_geometry_hints(self.window, min_width = 300, min_height = 100)

		menu_archivo = gtk.Menu()
		menu_item = gtk.MenuItem("Alfabetos...")
		menu_archivo.append(menu_item)
		#menu_item.connect("activate", self.menuitem_response, "Alfabetos")
		menu_item.connect("activate", self.create_alfabetos_tab)
		menu_item.show()

		menu_item = gtk.MenuItem("Definicion Regular...")
		menu_archivo.append(menu_item)
		menu_item.connect("activate", self.menuitem_response, "Definicion regular")
		menu_item.show()

		menu_item = gtk.MenuItem()
		menu_archivo.append(menu_item)
		menu_item.show()

		menu_item = gtk.MenuItem("Salir")
		menu_archivo.append(menu_item)
		menu_item.connect("activate", self.menuitem_response, "Salir")
		menu_item.show()

		root_menu_archivo = gtk.MenuItem("Archivo")
		root_menu_archivo.show()
		root_menu_archivo.set_submenu(menu_archivo)

		notebook = self.notebook = gtk.Notebook()
		notebook.set_scrollable(True)
		notebook.set_size_request(196, 196)
		notebook.set_properties(group_id=0, tab_vborder=0, tab_hborder=1, tab_pos=gtk.POS_TOP)
		notebook.popup_enable()
		notebook.show()

		vbox = gtk.VBox(False, 0)
		self.window.add(vbox)
		vbox.show()
		menu_bar = gtk.MenuBar()
		vbox.pack_start(menu_bar, False, False, 0)
		vbox.pack_start(notebook, True, True, 0)
		menu_bar.show()

		menu_bar.append(root_menu_archivo)
		
		self.window.show()

	def main(self):
		gtk.main()

	def menuitem_response(self, widget, string):
	        print "%s" % string

	def create_alfabetos_tab(self, widget):

		page = gtk.Label('Alfabetos')
		page.show()

		tab = gtk.VBox()
		tab.set_border_width(10)
		box = gtk.HBox()
		combobox = gtk.combo_box_new_text()
		combo_label = gtk.Label("Alfabetos disponibles: ")
		combo_label.show()
		for item in alfabetos.keys():
			combobox.append_text(item)	
		combobox.show()
		combobox.connect("changed", self.llenar_tabla_editar)
		box.pack_start(combo_label, False, False, 0)	
		box.pack_start(combobox, False, False, 0)
		box.show()
		tab.pack_start(box, False, False, 0)

		tabla_editar = gtk.Table(3, 2, True)
		tabla_editar.set_border_width(10)
		text_nombre_alf = self.text_nombre_alf = gtk.Entry()
		text_nombre_alf.show()
		tabla_editar.attach(text_nombre_alf, 1, 2, 0, 1)
		text_nombre_label = gtk.Label("Nombre: ")
		text_nombre_label.show()
		tabla_editar.attach(text_nombre_label, 0, 1, 0, 1)
		text_definicion_alf = self.text_definicion_alf = gtk.Entry()
		text_definicion_alf.show()
		tabla_editar.attach(text_definicion_alf, 1, 2, 1, 2)
		text_definicion_label = gtk.Label("Definicion: ")
		text_definicion_label.show()
		tabla_editar.attach(text_definicion_label, 0, 1, 1, 2)
		boton_guardar = gtk.Button("Guardar")
		boton_guardar.show()
		tabla_editar.attach(boton_guardar, 0, 2, 2, 3)
		tabla_editar.show()

		frame = gtk.Frame()
		frame.add(tabla_editar)
		frame.set_shadow_type(gtk.SHADOW_ETCHED_IN)
		frame.set_border_width(10)
		frame.show()
		tab.pack_start(frame, False, False, 0)

		tab.show()

		self.notebook.append_page(tab, page)
		self.notebook.set_tab_reorderable(tab, True)
		self.notebook.set_tab_detachable(tab, False)

	def llenar_tabla_editar(self, widget):
		print widget.get_active_text()
		self.text_nombre_alf.set_text(widget.get_active_text())
		self.text_definicion_alf.set_text(alfabetos[widget.get_active_text()])
	
if __name__ == "__main__":
	hello = Ventana()
	hello.main()
